1. Field of the Invention
The invention is related to the field of communications and, in particular, to billing for sessions in IMS networks.
2. Statement of the Problem
One type of communication network gaining popularity is an IP Multimedia Subsystem (IMS) network. As set forth in the 3rd Generation Partnership Project (3GPP), IMS provides a common core network having a network architecture that allows for various types of access networks. The access network between a communication device and the IMS network may be a cellular network (e.g., CDMA or GSM), a WLAN (e.g., WiFi or WiMAX), an Ethernet network, or another type of wireless or wireline access network. The IMS architecture is initially defined by the 3GPP to provide multimedia services to communication devices over an Internet Protocol (IP) network, as IP networks have become the most cost savings bearer network to transmit video, voice, and data. Service providers are accepting this architecture in next generation network evolution.
To provide offline charging for a session in an IMS network, network elements in the IMS network, such as a Call Session Control Function (S-CSCF, P-CSCF, I-CSCF), an application server (AS), a Media Gateway Control Function (MGCF), etc, generate Diameter Accounting Requests (ACR) for the session. When first being involved in the session, the network elements generate ACR[Start] messages. For example, if an S-CSCF receives a SIP INVITE to initiate the session, then the S-CSCF generates an ACR[Start] message. The network elements then transmit the ACR[Start] messages to a Charging Data Function (CDF).
After the session is established, the network elements periodically transmit ACR[Interim] messages to the CDF. The network elements transmit the ACR[Interim] messages to the CDF according to a pre-defined interval, such as every five minutes, or upon a change in the service or media. The service or media change can occur at any time in the session, in contrast to the periodic “heartbeat” mechanism driven by a timer set at a pre-defined interval. If the network elements detect that the session ends, such as by receiving a SIP BYE message, then the network elements generate ACR[Stop] messages. The network elements then transmit the ACR[Stop] messages to the CDF.
When the CDF first receives the ACR[Start] message from a network element, the CDF opens a Charging Data Record (CDR) for the session for that network element. The CDF then updates the open CDR each time it receives an ACR[Interim] message from the network element based on the charging information in the ACR[Interim] message. If the CDF receives an ACR[Stop] message from the network element, then the CDF closes the CDR for the session for that network element.
There may be instances where the CDF generates a partial CDR for a network element. When the CDF first receives the ACR[Start] message from a network element, the CDF sets a timer. If the CDF receives an ACR[Stop] message from the network element before expiration of the timer, then the CDF closes the CDR for the session to generate a full CDR. If the CDF does not receive an ACR[Stop] message from the network element before expiration of the timer, then the CDF closes the CDR to generate a partial CDR for the session. The CDF then opens a new CDR for the session. The CDF will continue to generate partial CDRs until an ACR[Stop] message is received from the network element. Also, if the CDF receives an ACR[Interim] message that indicates a service or media change for the session, then the CDF closes the CDR to generate a partial CDR for the session.
At some point at the end of the session, the CDRs for the session are aggregated and correlated to be presented to a billing system. Some existing IMS telecommunication systems presently define that the trigger for aggregation and correlation is the receipt of an ACR[Stop] message from the S-CSCF. Thus, in response to receiving the ACR[Stop] message from the S-CSCF, the CDF aggregates the partial CDRs for each network element (if any). The CDF then transmits the aggregated CDRs and the full CDRs for all of the network elements for correlation purposes. The correlation function correlates the CDRs for all of the network elements that served the session according to an IMS Charging Identifier (ICID), and generates a consolidated CDR for the session. In some circumstances, the CDF will correlate CDRs before transmitting them to the CGF; if so, the CDF should transmit the consolidated CDR to the CGF. In some other implementations, the functionality of correlation resides with the CGF. However, for the purposes of this disclosure, the exact location of this functionality execution does not have a material impact. The consolidated CDR thus includes the charging information for each of the network elements that served the session. The CGF then transmits the consolidated CDR to the billing system, which provides billing for the session. The billing system thus receives a single consolidated CDR from the CGF.
IMS networks and other multimedia/data type networks provide new and different issues not typically seen with traditional circuit-based networks. One such issue is long duration sessions. In a traditional circuit-based network, a typical voice call is relatively short, on the order of ten minutes or less. In an IMS network, data sessions for surfing the Internet, for watching IP TV, for playing online gaming, etc, may last much longer than a traditional voice call. For example, an online gaming session may last for multiple days. When long duration sessions are established over an IMS network, there may be problems associated with charging for the sessions. A consolidated CDR for a session is not generated until the session has ended. If a session is active for multiple days or even weeks, the session may extend beyond a billing period boundary, such as the end of a month. Because the consolidated CDR for the session is not generated until the session has ended, the session will not be billed until the next billing period which delays the time in which a service provider receives payment for the session. Also, if the CDF or CGF would happen to encounter a failure during the long duration session, then a consolidated CDR would not be sent to the billing system. Thus, the session would not be billed, and the service provider would lose the revenue for the entire session.
Additionally, partial CDRs created upon expiration of a timer, or change in service or media are not presented to the billing system as-is. They are aggregated, on a per network element basis, and correlated, on a session basis, before being presented to the billing system. Therefore, a periodic generation of partial CDRs alone is not useful for billing purposes until these partial CDRs can be formatted and presented to the billing system.